#ifndef __BE_PROCESSOR__
#define __BE_PROCESSOR__

/*  Should move this part to VM */

class Processor
{
 protected:
  Processor();

 public:
  enum 
  {
    STUB_PROC = 1,
    TEST_PROC,
  };

  virtual ~Processor();

  static ProcessorPtr createProcessor(int _id);
  virtual int update(UINT64 &_time) = 0;
  virtual void init(ScenePtr _scene) = 0;
};

class StubProcessor : public Processor
{
 public:
  StubProcessor();
  ~StubProcessor();
  
  void init(ScenePtr _scene);
  int update(UINT64 &_time);
};

class TestProcessor : public Processor
{
 public:
  TestProcessor();
  ~TestProcessor();

  void init(ScenePtr _scene);
  int update(UINT64 &_time);
};

#endif
